package com.sugon.modules.device.service;

import com.sugon.entity.DevAmRulesEntity;
import com.sugon.modules.base.model.vo.BaseApproveParamVO;
import com.sugon.modules.device.model.vo.SaveDevAmRuleParam;

import java.util.List;

/**
 * @author ： YuXD
 * @description： 设备维护规程业务Manager
 * 1、处理车间设备技术室主任对维护规程的审批
 * 2、制造处设备技术室主任审批
 * @date ： 2020-10-12 15:39
 * @version: 1.0
 */
public interface IDeviceAmRulesManager {

    /**
     * 创建自主设备维护规程
     *
     * @param rulesParam 设备自主维护规程参数
     * @return
     */
    boolean createDeviceAmMaintenanceRules(SaveDevAmRuleParam rulesParam);

    /**
     * 添加设备维护规程项
     *
     * @param planId     设备维护规程ID
     * @param mainBaseId 设备维护项
     * @return
     */
    boolean addMaintenanceRuleOption(String planId, String mainBaseId);

    /**
     * 删除设备维护规程项
     *
     * @param id 维护规程项ID
     * @return
     */
    DevAmRulesEntity deleteMaintenanceRuleOption(String id);

    /**
     * 对已有的设备维护规程进行克隆，排除掉需要排除的，添加需要新增的
     *
     * @param devAmRuleId       设备维护规程iD
     * @param excludeAmItemList 需要排除的设备维护项ID列表
     * @param addAmItemList     需要添加的设备维护项ID列表
     * @return
     */
    DevAmRulesEntity cloneDevPmRule(String devAmRuleId, List<String> excludeAmItemList, List<String> addAmItemList);

    /**
     * 车间-生产管理室主任 批量审批设备维护规程
     *
     * @param baseApproveParam 基础审批参数
     * @return
     */
    boolean workshopBatchApprove(BaseApproveParamVO baseApproveParam);


}
